{
    PUConst.UiPropType: PUConst.UiTypePanel,
    PUConst.UiPropSubUI: [
    {
        PUConst.UiPropType: PUConst.UiTypeLayoutVertical,
        PUConst.UiPropSubUI: [
        {
            PUConst.UiPropType: PUConst.UiTypeLayoutGrid,
            PUConst.UiPropColumn: 2,
            PUConst.UiPropSubUI: {
                "uidUsernameLabel": {
                    PUConst.UiPropType: PUConst.UiTypeText,
                    PUConst.UiPropText: "Username:"
                },
                "uidUsername": {
                    PUConst.UiPropType: PUConst.UiTypeInput
                },
                "uidPasswordLabel": {
                    PUConst.UiPropType: PUConst.UiTypeText,
                    PUConst.UiPropText: "Password:"     
                },
                "uidPassword": {
                    PUConst.UiPropType: PUConst.UiTypePassword
                }
            }
        },
        {
            PUConst.UiPropID: "uidLoginButton",
            PUConst.UiPropType: PUConst.UiTypeButton,
            PUConst.UiPropText: "Login",
            PUConst.UiPropApiTrigger: [
            {
                PUConst.UiApi: "aidLogin",
                PUConst.UiApiTriggerAction: PUConst.UiApiActionClick,
                PUConst.UiApiParams: [
                {
                    PUConst.UiApiDataType: PUConst.UiApiTypeUID,
                    PUConst.UiApiDataValue: "uidUsername"
                },
                {
                    PUConst.UiApiDataType: PUConst.UiApiTypeUID,
                    PUConst.UiApiDataValue: "uidPassword"
                }],
                PUConst.UiApiResults: {
                    PUConst.UiApiResultSuccessful: [
                        f"SetSession({PUConst.UiApiParamHolder})",
                        "OpenPage('https://{GetHost()}/page?id=1&client={GetClient()}&session={GetSession()}')"
                    ],
                    PUConst.UiApiResultInvalidToken: [
                        "SetVisible('uidLoginFailed')"
                    ],
                    PUConst.UiApiResultFailed: [
                        "SetVisible('uidLoginFailed')"
                    ]
                }
            }]
        },
        {
            PUConst.UiPropID: "uidLoginFailed",
            PUConst.UiPropType: PUConst.UiTypeText,
            PUConst.UiPropText: "Login failed!",
            PUConst.UiPropColor: PUConst.Red,
            PUConst.UiPropVisible: False
        }]
    }]
}
